Taller 1: Básico de Python

  • Funciones
  • Listas
  • Diccionarios

Este taller es para resolver problemas básicos de python. Manejo de listas, diccionarios, etc.

El taller debe ser realizado en un Notebook de Jupyter en la carpeta de cada uno. Debe haber commits con el avance del taller. Debajo de cada pregunta hay una celda para el código.

Basico de Python

1. Qué versión de python está corriendo?


In [7]:
import platform
platform.python_version()


Out[7]:
'2.7.13'

2. Calcule el área de un circulo de radio 5


In [8]:
r = 5

a = (r**2) * 3.141596

print a


78.5399

3. Escriba código que imprima todos los colores de que están en color_list_1 y no estan presentes en color_list_2

Resultado esperado : {'Black', 'White'}


In [22]:
color_list_1 = set(["White", "Black", "Red"])
color_list_2 = set(["Red", "Green"])

print color_list_1


set(['White', 'Black', 'Red'])

In [40]:
print color_list_1 - color_list_2

        # Resultado = []
        # for i in color_list_1:
            # if not color_list_1[i] in color_list_2:
                # Resultado += color_list_1[i]
                # else:
                   # pass
               # print Resultado


set(['White', 'Black'])

4 Imprima una línea por cada carpeta que compone el Path donde se esta ejecutando python

e.g. C:/User/sergio/code/programación Salida Esperada:

  • User
  • sergio
  • code
  • programacion

In [1]:
import os
wkd = os.getcwd()

wkd.split("/")


Out[1]:
['',
 'Users',
 'camilogarcia',
 'Desktop',
 'C_programacion',
 'Programacion',
 'Camilo']

Manejo de Listas

5. Imprima la suma de números de my_list


In [145]:
my_list = [5,7,8,9,17]

print my_list


[5, 7, 8, 9, 17]

In [147]:
suma = 0

for i in my_list:
    
    suma += i
    
print suma


46

6. Inserte un elemento_a_insertar antes de cada elemento de my_list


In [153]:
elemento_a_insertar = 'E'
my_list = [1, 2, 3, 4]

La salida esperada es una lista así: [E, 1, E, 2, E, 3, E, 4]


In [154]:
print my_list
print elemento_a_insertar

my_list.insert(0, elemento_a_insertar)
my_list.insert(2, elemento_a_insertar)
my_list.insert(4, elemento_a_insertar)
my_list.insert(6, elemento_a_insertar)

print my_list


[1, 2, 3, 4]
E
['E', 1, 'E', 2, 'E', 3, 'E', 4]

7. Separe my_list en una lista de lista cada N elementos


In [156]:
N = 3
my_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n']

Salida Epserada: [['a', 'd', 'g', 'j', 'm'], ['b', 'e', 'h', 'k', 'n'], ['c', 'f', 'i', 'l']]


In [157]:
new_list = [[] for _ in range(N)]
for i, item in enumerate(my_list):
    new_list[i % N].append(item)
print new_list


[['a', 'd', 'g', 'j', 'm'], ['b', 'e', 'h', 'k', 'n'], ['c', 'f', 'i', 'l']]

8. Encuentra la lista dentro de list_of_lists que la suma de sus elementos sea la mayor


In [3]:
list_of_lists = [ [1,2,3], [4,5,6], [10,11,12], [7,8,9] ]

Salida Esperada: [10, 11, 12]


In [141]:
print max(list_of_lists)


[10, 11, 12]

Manejo de Diccionarios

9. Cree un diccionario que para cada número de 1 a N de llave tenga como valor N al cuadrado


In [8]:
N = 5

Salida Esperada: {1:1, 2:4, 3:9, 4:16, 5:25}


In [160]:
Dict = {}

Dict[1] = 1**2 
Dict[2] = 2**2 
Dict[3] = 3**2 
Dict[4] = 4**2 
Dict[5] = 5**2 


print Dict


{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

10. Concatene los diccionarios en dictionary_list para crear uno nuevo


In [5]:
dictionary_list=[{1:10, 2:20} , {3:30, 4:40}, {5:50,6:60}]

Salida Esperada: {1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60}


In [4]:
new_dic = {}

new_dic.update(dictionary_list[0])
new_dic.update(dictionary_list[1])
new_dic.update(dictionary_list[2])


print new_dic


{1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60}

11. Añada un nuevo valor "cuadrado" con el valor de "numero" de cada diccionario elevado al cuadrado


In [36]:
dictionary_list=[{'numero': 10, 'cantidad': 5} , {'numero': 12, 'cantidad': 3}, {'numero': 5, 'cantidad': 45}]

Salida Esperada: [{'numero': 10, 'cantidad': 5, 'cuadrado': 100} , {'numero': 12, 'cantidad': 3, , 'cuadrado': 144}, {'numero': 5, 'cantidad': 45, , 'cuadrado': 25}]


In [37]:
for i in range(0,len(dictionary_list)):
    
    n = dictionary_list[i]['numero']
    sqr = n**2
    dictionary_list[i]['cuadrado'] = sqr
    
print dictionary_list


[{'cuadrado': 100, 'cantidad': 5, 'numero': 10}, {'cuadrado': 144, 'cantidad': 3, 'numero': 12}, {'cuadrado': 25, 'cantidad': 45, 'numero': 5}]

Manejo de Funciones

12. Defina y llame una función que reciba 2 parametros y solucione el problema 3


In [24]:
def loca(list1,list2):
    print list1 - list2
    
loca(color_list_1, color_list_2)


set(['White', 'Black'])

13. Defina y llame una función que reciva de parametro una lista de listas y solucione el problema 8


In [4]:
def marx(lista):
    return max(lista)

print marx(list_of_lists)


[10, 11, 12]

14. Defina y llame una función que reciva un parametro N y resuleva el problema 9


In [13]:
def dic(N):
    Dict ={}
    for i in range(1,N):
        Dict[i] = i**2
    return Dict

print dic(4)


[1, 2, 3]
{1: 1, 2: 4, 3: 9}